/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DataBase;

/**
 *
 * @author Qui
 */
import Beans.Itens;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;



public class ItensDAO extends DAO {
    public List<Itens> ListarTodos() throws Exception {

        Conectar();
        String SQL = "SELECT * FROM itens order by codigo";
        pstmt = con.prepareStatement(SQL);
        rs = pstmt.executeQuery();
        Itens i = null;
        List<Itens> ListaItens = new ArrayList<Itens>();
        while (rs.next()) {
            i = new Itens();
            i.setCodigo(rs.getString("codigo"));
            i.setCod_venda(rs.getString("cod_venda"));
            i.setCod_produto(rs.getString("cod_produto"));
            i.setQuantidade(rs.getString("quantidade"));
            i.setPreco(rs.getString("preco"));
            i.setStatus(rs.getString("status"));
            ListaItens.add(i);
        }
        Desconectar();
        return ListaItens;
    }
    
    public Itens busca(String busca) throws Exception {
        Conectar();
        String SQL_verificar = "select nome from tabela_itens where nome= '"+busca+"'";
            Statement verifica = con.createStatement();
            ResultSet rs = verifica.executeQuery(SQL_verificar);
            if(!rs.next()){
              JOptionPane.showMessageDialog(null, "Item não Cadastrado", "Erro na Pesquisa", JOptionPane.INFORMATION_MESSAGE);                  
            }else {
        String SQL = "SELECT * FROM tabela_itens WHERE  codigo=? or nome=?";
        pstmt = con.prepareStatement(SQL);
        pstmt.setString(1, busca);
        pstmt.setString(2, busca);
        rs = pstmt.executeQuery();
            }
        Itens it = null;
        if (rs.next()) {
            it = new Itens();
            it.setCodigo(rs.getString("codigo"));
            it.setCod_venda(rs.getString("cod_venda"));
            it.setCod_produto(rs.getString("cod_produto"));
            it.setQuantidade(rs.getString("quantidade"));
            it.setPreco(rs.getString("preco"));
            it.setStatus(rs.getString("status"));
        }
    //
        
        Desconectar();
        return it;
                
    }
    
   public boolean cadastroItem(Itens i) {
        try {
            Conectar();
            String SQL_verificar = "select nome from tabela_itens where cod_venda= '"+i.getCod_venda()+"'";
            Statement verifica = con.createStatement();
            ResultSet rs = verifica.executeQuery(SQL_verificar);
            if(rs.next()){
              JOptionPane.showMessageDialog(null, "Item já Cadastrado", "Erro no Cadastro", JOptionPane.INFORMATION_MESSAGE);                  
            }else {
            String SQL = "INSERT INTO tabela_itens (cod_venda, quantidade, status, preco) VALUES('"+i.getCod_venda()+"','" + i.getQuantidade() +"','"+i.getStatus()+"','"+i.getPreco()+"')";
            Statement s = con.createStatement();
            s.executeUpdate(SQL);
            JOptionPane.showMessageDialog(null, "Item Enviado com Sucesso ");
            Desconectar();
            }
            return true;
        } catch (Exception ex) {
            System.out.println("Erro " + ex);
            return false;
        }

    }
   
   public void remProd (String nomProd) throws Exception
    {
        try {
        Conectar();
        String SQL = ("delete from tabela_itens where nome=?");
        pstmt = con.prepareStatement(SQL);
        pstmt.setString(1, nomProd);
        pstmt.executeUpdate();
        Desconectar();
        } catch (SQLException ex) {
           JOptionPane.showMessageDialog(null,""+ex,"Erro na Remoção do Produto", JOptionPane.ERROR_MESSAGE); 
        }
    }
   
   public boolean alterarProd(Itens i) {
        try {
            Conectar();
            String SQL = "update tabela_itens set cod_venda = '"+i.getCod_venda()+"', quantidade = '"+i.getQuantidade()+"' , status = '"+i.getStatus()+"'";
            Statement s = con.createStatement();
            s.executeUpdate(SQL);
            //System.out.println("ola");
            Desconectar();
            return true;
        } catch (Exception ex) {
            System.out.println("Erro " + ex);
            return false;
        }
   
   }
    public boolean getCod(String cod){
        try{
        Conectar();
        String SQL = "SELECT cod_pessoa from tabela_clientes where cod_pessoa=?;";
        pstmt = con.prepareStatement(SQL);
        pstmt.setString(1, cod);
        rs = pstmt.executeQuery();


        if (rs.next()) {
            Desconectar();
            return true;
        } else {
            return false;
        }
        }catch(Exception ex){
            System.out.println("Exceção getCod"+ex.getMessage());
            return false;
        }
    }
      public Itens buscaVenda(String busca) throws Exception {
        Conectar();
        Itens pr = null;
        String SQL_verificar = "select codigo from itens where codigo= '" + busca + "'";
        Statement verifica = con.createStatement();
        ResultSet rs = verifica.executeQuery(SQL_verificar);
        if (!rs.next()) {
            JOptionPane.showMessageDialog(null, "Produto não Cadastrado", "Erro na Pesquisa", JOptionPane.INFORMATION_MESSAGE);
            Desconectar();
            return pr;
        } else {
            String SQL = "SELECT * FROM itens WHERE  cod_venda=? or cod_produto=?";
            pstmt = con.prepareStatement(SQL);
            pstmt.setString(1, busca);
            pstmt.setString(2, busca);
            rs = pstmt.executeQuery();
            //Produto pr = null;
            if (rs.next()) {
                pr = new Itens();
                pr.setCodigo(rs.getString("codigo"));
                pr.setCod_venda(rs.getString("cod_venda"));
                pr.setCod_produto(rs.getString("cod_produto"));
                pr.setQuantidade(rs.getString("quantidade"));
                pr.setPreco(rs.getString("preco"));
                pr.setStatus(rs.getString("status"));

            }
            Desconectar();
            return pr;
        }
    }

    public Itens consultarTabela_itens(String cod) throws Exception {

        try {

            Conectar();
            String SQL = ("SELECT * FROM itens WHERE codigo=?");
            pstmt = con.prepareStatement(SQL);
            pstmt.setString(1, (cod));
            rs =  pstmt.executeQuery();
            
            
             System.out.println("consultou tabela itens é do metodo consultarBd ITENS");
           //cria um objeto AbaCadastro e configura os dados p/ inserir no objeto AbaCadastro
            Itens pd = null;
            if(rs.next()) {
             pd = new Itens();
                pd.setCodigo(rs.getString("codigo"));
                pd.setCod_venda(rs.getString("cod_venda"));
                pd.setCod_produto(rs.getString("cod_produto"));
                pd.setQuantidade(rs.getString("quantidade"));
                pd.setPreco(rs.getString("preco"));
                pd.setStatus(rs.getString("status"));
                System.out.println("dentro da Tabela Itens");
            }
            

            Desconectar();
            return pd;//retorna o objeto que sera passado p/ botão consultar
            
        } catch (SQLException se) {
            return null;
        }
    }
         public boolean vendaTemp(Itens i) {
        try {
            Conectar();
            String SQL = "insert into tbvenda values(?,?,?,?,?);";
            pstmt = con.prepareStatement(SQL);
            //pstmt.setString(1, p.getRef_prod());
            //pstmt.setString(2, p.getNome());
            //pstmt.setInt(3, i.getQuantidade());
            //pstmt.setFloat(4, p.getPreco());
            //pstmt.setString(5, i.getQuantidade() * i.getPreco());
            pstmt.executeUpdate();
            Desconectar();
            return true;
        } catch (Exception ex) {
            return false;
        }
    }
}
    
